{{tag>p2p i2p anonymat Lucid}}

----

====== iMule : client pair-à-pair anonyme ======

**iMule** est un client d'échange de fichiers pair-à-pair ([[P2P]]) anonyme, reposant sur la couche réseau d'anonymat [[I2P]]. Son interface et ses fonctions sont similaires à celles de [[eMule]].

<note>La lenteur de iMule peut décourager au début. Sachez néanmoins que sa rapidité dépend du nombre d'utilisateurs et de sa durée d'utilisation.</note>

===== Présentation détaillée =====
Pour préserver l'anonymat, imule est doté de 2 particularités qui le différencient de logiciels P2P tels qu'Emule ou bittorent :

  * Contrairement à eMule et les clients bitorrents qui se connectent à des serveurs centralisés, iMule ne se connecte à aucun serveur centralisé, et utilise seulement le protocole Kademlia (kad) - un réseau totalement décentralisé - c'est à dire un réseau réellement de pair à pair (P2P) -. Kademlia (Kad) permet à la fois la recherche des fichiers à télécharger et l'échange de noeuds à travers Internet. Imule peut cependant gérer les liens ''ed2k'' habituels mais ne recherchera des sources que sur le réseau Kad.

  * Contrairement à Emule, iMule fait passer toutes les communications au travers du protocole réseau d'anonymat I2P, avec de plus des mécaniques de sécurisation supplémentaires(( The *I*nvisible *I*nternet *P*roject ("I2P") is routing the Files from Alice to Bob over Peter, Paul and Mary. This means, a Tunnel is created (Alice -> Peter -> Paul -> Mary -> Bob), over which the File is sent.

Read the Instruction-Letter for your Router- or Firewall-Settings

Your IP-Adress is not shown to the requester or owner of the file.

Second, I2P uses no IP-Adresses to let Alice and Bob communicate, but virtual generated IP-Adresses, so called Base-64-Keys. Once an Anonymity Tunnel is created, many applications are routing Traffic over I2P, because it is (thrid) all encrypted, you even do not know, if it is an Email or a Mp3-File.

Learn more about Friend-to-Friend / Fast-to-Fast Transfers to make IMule Transfers faster

Fourth, IMule then uses as well *new*/*other* virtual generated Client-Keys, which stuck (saddle up) to the I2P-Base-64-Keys.

This means it is a perfect Mixer, anonymous Tunnel and all encrypted)). Cela vous rend difficilement traçable, voire anonyme. Cette particularité oblige l'utilisation d'une version améliorée de Kademlia, c'est pourquoi Imule ne peut donc partager des fichiers qu'avec d'autres clients iMule.

Parce qu'il est anonyme et si il est mal configuré, l'échange de fichiers par iMule peut nécessiter plus de ressources CPU qu'[[eMule]] ou [[aMule]].
<note tip>Vous pouvez changer facilement la priorité  du processus imule et du java pour l'i2p, pour ce faire lancer le Système -> Administration -> Moniteur système : clic droit sur le processus -> modifier la priorité -> déplacer pour obtenir faible ou très faible - [[cpulimit]] peut aussi être d'une aide précieuse en cas d'utilisation excessive des ressources du processeurs par iMule</note>
Imule obtient des débits respectables et équivalents a son prédécesseur Emule, pour peu qu'on le laisse fonctionner pendant quelque temps avant d'obtenir le plein débit (c'est aussi le cas avec Emule).


===== Installation =====
  * Installer la version d'iMule la plus récente
  * Dernière version (2014) : imule 2.3.2.3.deb sur launchpad   PPA de i2p [[https://launchpad.net/~i2p.packages/+archive/i2p/+packages|ici]]



=== Installer i2p ===

La dernière version d'iMule a besoin que vous installiez et lanciez tout d'abord i2p.
Pour installer, configurez et lancer i2p, consulter la page  [[i2p]] 

Une fois i2p installé et lancé, vous devez activer sa fonctionnalité SAMBridge permettant à des applications tierces de se connecter au réseau. 

=== Activer le pont applicatif SAM ===

      * Allez à [[ http://localhost:7657/configclients | la page de configuration des clients i2p ]] {{jlzmmd.png}}
      * Cochez la case **Pont applicatif SAM** ; puis cliquer sur **Enregistrer la configuration**.  {{mvv8yr.png}}
      * Redémarrer le routeur I2P en appuyant sur le bouton **Redémarrage** dans la colonne de gauche de l'interface de configuration d'I2P ou en executant <code>~/i2p/i2prouter restart</code>

La nouvelle version d'iMule utilise obligatoirement le service i2p. Elle est donc désormais directement configurée pour s'y connecter. 

=== Rediriger les ports ===
<note tip>
La redirection des ports est inutile sur les box compatibles UPnP (ex: Freebox Révolution)
</note>


iMule, comme eMule ou aMule, fonctionnera même si vous ne redirigez pas les ports de votre box. Toutefois, il sera plus lent. Vous devez donc configurer votre routeur pour autoriser les connections entrantes vers votre ordinateur sur certains ports. Comme iMule utilise désormais uniquement le service i2p, seul le port i2p doit être ouvert (en TCP et UDP).

Si votre routeur est compatible UPnP (Universal Plug and Play), i2p percera un trou UDP par "représentations SSU" pour relayer le trafic : vous n'avez donc rien à faire. Pour vérifier l'état de l'UPnP 

      * Allez à  [[http://127.0.0.1:7657/peers#upnp|la page des pairs]]. 
      * Tout en bas, vérifiez que vous voyez :
<code>
Adresse IP externe détectée par UPnP : xx.xxx.xx.xxx
Le port TCP yyyyy est correctement transféré par UPnP.
Le port UDP yyyyy est correctement transféré par UPnP.
</code>

Si c'est le cas, l'UPnP de votre box fonctionne et vous n'avez rien à configurer (au lieu de //xx.xxx.xx.xxx//, il y a aura votre adresse [[http://www.iplocation.net/find-ip-address|IP externe]], et au lieu de //yyyyy// le port choisi au hasard par i2p)

Si au lieu de cela, vous avez un message d'erreur, c'est que vous devez configurer manuellement la redirection des ports sur votre box. 

Les nouvelles installations d'iMule depuis la version 0.7.8 n'utilisent plus le port 8887 (qui pourrait être surveillé, bridé, etc.). Elles sélectionnent un port aléatoire entre 9000 et 31000 lorsque le programme est exécuté pour la première fois. C'est ce port choisi au hasard qu'il faut ouvrir sur votre routeur. Donc, si vous réinstaller i2p, vous devez reconfigurer ce port. 

Pour connaitre le port à rediriger en TCP et UDP :
      * Allez à sur [[la page de configuration du routeur|http://127.0.0.1:7657/confignet.jsp]], 
      * Cherchez Port UDP : yyyyy. 

C'est ce port que vous devez rediriger vers votre ordinateur en TCP et UDP. Consultez la documentation de votre routeur ou de votre firewall pour savoir comment procéder. 

<note tip>

__Aide pour l'ouverture de ports :__

[[http://www.dslvalley.com/dossiers/freebox/freebox-nat.php|Tutorial pour FreeBox sur DSLValley]]

[[http://www.dslvalley.com/dossiers/9box4/neufbox-nat-emule.php|Tutorial pour NeufBox sur DSLValley]]

[[http://www.dslvalley.com/dossiers/orange/livebox-emule.php|Tutorial pour LiveBox sur DSLValley]]
</note>



pour plus d'information au sujet des ports et d'i2p, vous pouvez consulter [[https://geti2p.net/fr/faq#ports|la documentation officielle sur le sujet]] :

=== Lancer iMule ===
<note important>
i2p devra toujours être lancé avant que vous ne lanciez iMule. 
</note>

* Vous trouverez iMule dans le menu //Applications -> Internet//. 
* Vous pouvez aussi le lancer en ligne de commande : <code>$imule</code>

==== Mettre à jour la liste de noeuds ====

Pour télécharger les adresses des premiers peers auxquels va pouvoir se connecter votre iMule, il est possible pouvez mettre à jour la liste des nœuds.

Pour cela, dans iMule:
    * Cliquez sur l'icone **Réseau Kad** en haut à droite
    * Tout en haut, dans ** Amorçage Depuis l'Url ** ajoutez une des adresses permettant d'accéder à un fichier nodes.dat 
    * Cliquez sur le bouton avec la flèche bleu à droite de la zone texte
    * Une boite de dialogue vous demande de confirmer si vous souhaiter télécharger un nouveau fichier nodes.dat et écraser l'ancien, cliquez sur **oui**

Le téléchargement va commencer, et devrait être assez rapide (56Ko). 

Il existe deux adresses permettant de télécharger le fichier nodes.dat  :
    * http://www.imule.i2p/nodes.dat  : C'est le site officiel d'iMule, pas toujours accessible.
    * http://echelon.i2p/imule/nodes.dat : Le site echelon est un des //services cachés dignes d'intérêt// de i2p, il est donc toujours très facile d'accès.

Nous vous conseillons d'utiliser la seconde adresse. 

{{imulenodes.png}}



Dès que les nœuds apparaissent, l'icône d'iMule passe en couleur et vous pouvez commencer à lancer des recherches.



===== Patience =====

Imule tout comme Emule ne démarre pas instantanément, il nécessite plusieurs dizaines de minutes.
  * Vérifiez que tout est connecté.
  * Vérifiez que votre iMule est connecté à quelques nœuds, sinon mettez à jour la liste de noeuds.

==== Notes annexe du protocole kad : ====

Le nombre d'utilisateur en bas d'imule ne correspond pas au nombre d'utilisateur réellement connecté.

De même, une recherche sur par exemple mp3 ne retournera pas nécessairement tous les mp3 - la requête kad n'est pas infinie et retourne donc un nombre limité de résultat, par contre en faisant une recherche plus précise vous obtiendrez ce que vous voulez.

===== Configuration avancée =====
==== Routeur I2P - ' externe ' ====

Après avoir réussi à se connecter une fois avec Imule.

Dans [[ http://localhost:7657/configtunnels | la page de configuration des Tunnes du routeur i2p ]] : mettre tous les tunnels à 6 tunnels (soit tois fois la valeur par défaut). 

Imule envoie des paquets de 9 Mo et monopolise donc un tunnel par utilisateur pour envoie ou réception - il est notable que 2 tunnels sont insuffisants pour l'envoie et la réception en P2P dans le but d'atteindre le plein débit et avoir un réseau optimum.

{{imuletunnels.png}}
==== Amélioration des performances d'iMule ====

<note>Ces modifications sont des tests, à vous de reporter leurs effets sur [[http://forum.ubuntu-fr.org/viewtopic.php?pid=3118221#p3118221|cette section du forum]] consacrée à l'amélioration des performances</note>


=== Processus ===

Dans le fichier wrapper.config (dans le dossier d'installation de i2p) : 
  * Augmenter la mémoire disponible pour I2P ( par défaut 128)
<code>wrapper.java.maxmemory=256</code>
  * Retirer l'utilisation du log :
<code>wrapper.logfile.maxsize=0</code>
  * Mettre l'interval des ping à 200 :
<code>wrapper.ping.interval=200</code>


=====Voir aussi=====
  * [[http://www.imule.i2p.tin0.de/|Site officiel d'iMule]] via le web en clair
  * http://www.imule.i2p  Site officiel d'iMule, accessible via le réseau I2P seulement
  * http://ugha.i2p/iMule Un wiki dans I2P listant des astuces.
  * **(fr)**  [[wpfr>iMule|"iMule" sur Wikipedia]]
-----
//Contributeurs : //